class Solution 
{
public:
    int peakIndexInMountainArray(vector<int>& arr) 
    {
        // 1、区间下标初始化（注意最两边的元素一点不是最终结果）
        int left = 1, right = arr.size() - 2;
        // 2、二叉查找单调递增区间的右边界
        while(left < right)
        {
            int mid = left + (right - left + 1) / 2;
            if(arr[mid] > arr[mid - 1]) left = mid;
            else right = mid - 1;
        }
        // 3、返回值
        return left;
    }
};